package cn.tedu.map;

import java.util.HashSet;
import java.util.Set;

public class TestSet {
    public static void main(String[] args) {
        Set<String> set = new HashSet<>();
        set.add("牛气冲天");
        set.add("虎虎生威");
        set.add("虎虎生威");
        set.add(null);
        System.out.println(set);
        /**1.set集合中的元素都是无序的
         * 2.set集合中的元素不能重复
         * 3.set集合允许存放null值*/
//        set.clear();
        System.out.println(set.contains("牛气冲天"));
        System.out.println(set.hashCode());
        System.out.println(set.isEmpty());
        System.out.println(set.remove("牛气冲天"));
        System.out.println(set.size());
        System.out.println(set.toArray());

        Set<String> set2 = new HashSet<>();
        set.add("美羊羊");
        set.add("喜羊羊");
        System.out.println(set.addAll(set2));
        System.out.println(set.containsAll(set2));
        System.out.println(set.removeAll(set2));
        System.out.println(set.retainAll(set2));

        /**总结：自定义对象Student如果想要去重
         * 需要在Student类中手动添加重写的hashCode()与equals()
         * 这样重写后就根据对象的类型+属性值判断是否为同一个对象了
         * 而不是根据对象的地址值判断，因为Object默认实现判断的是==地址值*/

    }
}
